<?php
class ObservacionsController extends AppController {

	var $name = 'Observacions';
	var $components = array('RequestHandler');
	var $helpers = array('Javascript','html','Ajax');
	function index() {
		$this->Observacion->recursive = 0;
		$this->set('observacions', $this->paginate());
	}



	function view($model=null,$foreignKey = null) {
		$this->autoRender=false;
		$models=array('1'=>'Observacion.paciente_id','2'=>'Observacion.evento_id');
		if($this->RequestHandler->isAjax()){
		if (!$model || !$foreignKey) {
			$this->Session->setFlash('Debe proporcionar el modelo y la llave foranea sobre las que quiere consultar los comentarios');
			$this->render('/elements/error');
			return;
		}
		if($models[$model]){
			if($this->Observacion->find('first',array('conditions' => array($models[$model] => $foreignKey)))){
				$this->set('observaciones',$this->Observacion->find('all',array('conditions' => array($models[$model] => $foreignKey),'recursive'=>1)));
					
			}else{
				$tmp =array();
				$this->set('observaciones',$tmp);
			}
			$this->set('model',$model);
			$this->set('foreignKey',$foreignKey);
			$this->render('view','ajax');
		}else{
			$this->Session->setFlash('Especifique un modelo válido');
			$this->render('/elements/error');
			return;
		}
		}

	}



	function ajaxAdd($model=null,$foreignKey = null) {
		$this->autoRender=false;
		$models=array('1'=>'Paciente','2'=>'Evento');
		$attribute=array('1'=>'paciente_id','2'=>'evento_id');
		if($this->RequestHandler->isAjax()){
			if (!$model || !$foreignKey) {
				$this->Session->setFlash('Debe proporcionar el modelo y la llave foranea sobre las que quiere consultar los comentarios');
				$this->render('/elements/error');
				return;
			}
			if($models[$model]){//verificamos que sea un modelo valido para observaciones
				$foreingModel=ClassRegistry::init($models[$model]); //creamos una instancia del modelo para vferificar que existe la foreing key
				if($foreingModel->find('first',array('conditions'=>array(($models[$model].'.'.$attribute[$model])=>$foreignKey)))){
					if (!empty($this->data)) {
						$this->Observacion->create();
						$this->data['Observacion'][$attribute[$model]]=$foreignKey;
						$this->data['Observacion']['usuario_id']=$this->Session->read('Auth.Usuario.usuario_id');
						
						if ($this->Observacion->save($this->data)) {
							$this->redirect(array('controller'=>'observacions','action'=>'view',$model,$foreignKey));
						} else {
							$this->Session->setFlash('Hubo un error guardando su observacion, por favor contacte con el administrador');
							$this->render('/elements/error');
							return;
						}
					}
					else{
						$this->Session->setFlash('No ha proporcionado datos para guardar en la observacion');
						$this->render('/elements/error');
						return;
					}
				}else{
					$this->Session->setFlash('Debe proporcionar una llave foránea válida para el modelo proporcionado');
					$this->render('/elements/error');
					return;
				}
			}
			else{
				$this->Session->setFlash('Debe proporcionar un modelo válido');
				$this->render('/elements/error');
				return;
			}
				
		}
	}

	/*function edit($id = null) {
		if (!$id && empty($this->data)) {
			$this->Session->setFlash(sprintf(__('Invalid %s', true), 'observacion'));
			$this->redirect(array('action' => 'index'));
		}
		if (!empty($this->data)) {
			if ($this->Observacion->save($this->data)) {
				$this->Session->setFlash(sprintf(__('The %s has been saved', true), 'observacion'));
				$this->redirect(array('action' => 'index'));
			} else {
				$this->Session->setFlash(sprintf(__('The %s could not be saved. Please, try again.', true), 'observacion'));
			}
		}
		if (empty($this->data)) {
			$this->data = $this->Observacion->read(null, $id);
		}
		$pacientes = $this->Observacion->Paciente->find('list');
		$eventos = $this->Observacion->Evento->find('list');
		$this->set(compact('pacientes', 'eventos'));
	}

	function delete($id = null) {
		if (!$id) {
			$this->Session->setFlash(sprintf(__('Invalid id for %s', true), 'observacion'));
			$this->redirect(array('action'=>'index'));
		}
		if ($this->Observacion->delete($id)) {
			$this->Session->setFlash(sprintf(__('%s deleted', true), 'Observacion'));
			$this->redirect(array('action'=>'index'));
		}
		$this->Session->setFlash(sprintf(__('%s was not deleted', true), 'Observacion'));
		$this->redirect(array('action' => 'index'));
	}*/
}
?>